package com.triadsystems.cashweb.modelo.negocio.servicos;

import java.util.Collection;

import com.icon.infra.modelo.negocio.excecoes.ConsultaInvalidaException;
import com.icon.infra.modelo.negocio.excecoes.MultiplosResultadosParaRecuperarObjetoException;
import com.icon.infra.modelo.negocio.excecoes.ObjetoNaoEncontradoException;
import com.icon.infra.modelo.persistencia.dao.IDataAccessObject;
import com.triadsystems.cashweb.modelo.persistencia.entidades.Movimentacao;
import com.triadsystems.cashweb.modelo.persistencia.entidades.Pagamento;
import com.triadsystems.cashweb.modelo.persistencia.entidades.TransacaoPagamento;

public interface ITransacaoServico extends IDataAccessObject<TransacaoPagamento> {
	
//	public Collection getMovimentacoesMesmaTransacao(Movimentacao m);
//	public Collection getPagamentosByMovimentacao(Movimentacao movimentacao);

	@SuppressWarnings("rawtypes")
	@Deprecated
	public Collection getMovimentacoesByPagamento(Pagamento pagamento) throws ObjetoNaoEncontradoException, ConsultaInvalidaException;
	
	@Deprecated
	public Collection<Pagamento> getPagamentosByCodTransacao(long codTransacao);
	
	@Deprecated
	public Collection<Pagamento> getPagamentosAtivosByCodTransacao(long codTransacao);
	
	public TransacaoPagamento getTransacaoPagamentoByMovimentacao(Movimentacao movimentacao) throws MultiplosResultadosParaRecuperarObjetoException, ObjetoNaoEncontradoException, ConsultaInvalidaException;

	public TransacaoPagamento getTransacaoPagamentoById(long idMovimentacao) throws MultiplosResultadosParaRecuperarObjetoException, ObjetoNaoEncontradoException, ConsultaInvalidaException;
}
